Specify explicitly the _l_a_n_g_u_a_g_e for the following input
files (rather than choosing a default based on the file
name suffix) . This option applies to all following
input files until the next ` ----xxxx' option. Possible
values of _l_a_n_g_u_a_g_e are `cccc', `oooobbbbjjjjeeeeccccttttiiiivvvveeee----cccc', `cccc---- hhhheeeeaaaaddddeeeerrrr',
`cccc++++++++', `ccccpppppppp----oooouuuuttttppppuuuutttt', `aaaasssssssseeeemmmmbbbblllleeeerrrr', and `aaaasssssssseeeemmmmbbbblllleeeerrrr----wwwwiiiitttthhhh----
ccccpppppppp'.
----xxxx nnnnoooonnnneeee
Turn off any specification of a language, so that sub-
sequent files are handled according to their file name
suffixes (as they are if `----xxxx' has not been used at
all).
If you want only some of the four stages (preprocess, com-
pile, assemble, link), you can use `----xxxx' (or filename suf-
fixes) to tell ggggcccccccc where to start, and one of the options `----
cccc', ` ---- SSSS', or `----EEEE' to say where ggggcccccccc is to stop. Note that
some combinations (for example, `----xxxx ccccpppppppp----oooouuuuttttppppuuuutttt ----EEEE') instruct
ggggcccccccc to do nothing at all.
----cccc Compile or assemble the source files, but do not link.
The compiler output is an object file corresponding to
each source file.
By default, GCC makes the object file name for a source
file by replacing the suffix `....cccc', `....iiii', `....ssss', etc.,
with `....oooo'. Use ----oooo to select another name.
GCC ignores any unrecognized input files (those that do
not require compilation or assembly) with the ----cccc op-
tion.
----SSSS Stop after the stage of compilation proper; do not as-
semble. The output is an assembler code file for each
non-assembler input file specified.
By default, GCC makes the assembler file name for a
source file by replacing the suffix `....cccc', `....iiii', etc.,
with `....ssss'. Use ----oooo to select another name.
GCC ignores any input files that don't require compila-
tion.
GNU Tools Last change: 1993/10/13 5
GCC(1) GNU Tools GCC(1)
----EEEE Stop after the preprocessing stage; do not run the
compiler proper. The output is preprocessed source
code, which is sent to the standard output.
GCC ignores input files which don't require preprocess-
ing.
----oooo _f_i_l_e
Place output in file _f_i_l_e. This applies regardless to
whatever sort of output GCC is producing, whether it be
an executable file, an object file, an assembler file
or preprocessed C code.
Since only one output file can be specified, it does
not make sense to use `----oooo' when compiling more than one
input file, unless you are producing an executable file
as output.
If you do not specify `----oooo', the default is to put an
executable file in `aaaa....oooouuuutttt', the object file for
`_s_o_u_r_c_e...._s_u_f_f_i_x' in `_s_o_u_r_c_e....oooo', its assembler file in
`_s_o_u_r_c_e....ssss', and all preprocessed C source on standard
output.
----vvvv Print (on standard error output) the commands executed
to run the stages of compilation. Also print the ver-
sion number of the compiler driver program and of the
preprocessor and the compiler proper.
----ppppiiiippppeeee
Use pipes rather than temporary files for communication
between the various stages of compilation. This fails
to work on some systems where the assembler cannot read
from a pipe; but the GNU assembler has no trouble.
Do not use the standard system startup files when link-
ing. The standard libraries are used normally.
----nnnnoooossssttttddddlllliiiibbbb
Don't use the standard system libraries and startup
files when linking. Only the files you specify will be
passed to the linker.
----ssssttttaaaattttiiiicccc
On systems that support dynamic linking, this prevents
linking with the shared libraries. On other systems,
this option has no effect.
----sssshhhhaaaarrrreeeedddd
Produce a shared object which can then be linked with
other objects to form an executable. Only a few sys-
tems support this option.
----ssssyyyymmmmbbbboooolllliiiicccc
Bind references to global symbols when building a
shared object. Warn about any unresolved references
(unless overridden by the link editor option `---- XXXXlllliiiinnnnkkkkeeeerrrr
---- zzzz ---- XXXXlllliiiinnnnkkkkeeeerrrr ddddeeeeffffssss'). Only a few systems support this
option.
----XXXXlllliiiinnnnkkkkeeeerrrr _o_p_t_i_o_n
Pass _o_p_t_i_o_n as an option to the linker. You can use
this to supply system-specific linker options which GNU
CC does not know how to recognize.
If you want to pass an option that takes an argument,
you must use `----XXXXlllliiiinnnnkkkkeeeerrrr' twice, once for the option and
once for the argument. For example, to pass ` ---- aaaasssssssseeeerrrrtttt
ddddeeeeffffiiiinnnniiiittttiiiioooonnnnssss', you must write `----XXXXlllliiiinnnnkkkkeeeerrrr ----aaaasssssssseeeerrrrtttt ----XXXXlllliiiinnnnkkkkeeeerrrr
ddddeeeeffffiiiinnnniiiittttiiiioooonnnnssss'. It does not work to write `----XXXXlllliiiinnnnkkkkeeeerrrr """" ----
aaaasssssssseeeerrrrtttt ddddeeeeffffiiiinnnniiiittttiiiioooonnnnssss""""', because this passes the entire
string as a single argument, which is not what the
linker expects.
----WWWWllll,,,,_o_p_t_i_o_n
Pass _o_p_t_i_o_n as an option to the linker. If _o_p_t_i_o_n con-
tains commas, it is split into multiple options at the
commas.
----uuuu _s_y_m_b_o_l
Pretend the symbol _s_y_m_b_o_l is undefined, to force link-
ing of library modules to define it. You can use `----uuuu'
multiple times with different symbols to force loading
Return some structures of more than one word in regis-
ters, when convenient. This is the default. For com-
patibility with the IBM-supplied compilers, use either
`----ffffppppcccccccc----ssssttttrrrruuuucccctttt----rrrreeeettttuuuurrrrnnnn' or `----mmmmhhhhcccc----ssssttttrrrruuuucccctttt----rrrreeeettttuuuurrrrnnnn'.
These `----mmmm' options are defined for the MIPS family of com-
puters:
----mmmmccccppppuuuu====_c_p_u-_t_y_p_e
Assume the defaults for the machine type _c_p_u-_t_y_p_e when
scheduling instructions. The default _c_p_u-_t_y_p_e is ddddeeee----
ffffaaaauuuulllltttt, which picks the longest cycles times for any of
the machines, in order that the code run at reasonable
rates on all MIPS cpu's. Other choices for _c_p_u-_t_y_p_e
are rrrr2222000000000000, rrrr3333000000000000, rrrr4444000000000000, and rrrr6666000000000000. While picking a
specific _c_p_u-_t_y_p_e will schedule things appropriately
for that particular chip, the compiler will not gen-
erate any code that does not meet level 1 of the MIPS
ISA (instruction set architecture) without the ----mmmmiiiippppssss2222
or ----mmmmiiiippppssss3333 switches being used.
----mmmmiiiippppssss2222
Issue instructions from level 2 of the MIPS ISA (branch
likely, square root instructions). The ----mmmmccccppppuuuu====rrrr4444000000000000 or
----mmmmccccppppuuuu====rrrr6666000000000000 switch must be used in conjunction with ----
mmmmiiiippppssss2222.
----mmmmiiiippppssss3333
GNU Tools Last change: 1993/10/13 41
GCC(1) GNU Tools GCC(1)
Issue instructions from level 3 of the MIPS ISA (64 bit
instructions). The ----mmmmccccppppuuuu====rrrr4444000000000000 switch must be used in
(C++ only.) Use this pragma in a main input file, when
you want full output from included header files to be
generated (and made globally visible). The included
header file, in turn, should use `####pppprrrraaaaggggmmmmaaaa iiiinnnntttteeeerrrrffffaaaacccceeee'.
Backup copies of inline member functions, debugging in-
formation, and the internal tables used to implement
virtual functions are all generated in implementation
files.
If you use `####pppprrrraaaaggggmmmmaaaa iiiimmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn' with no argument,
it applies to an include file with the same basename as
your source file; for example, in `aaaallllllllccccllllaaaassssssss....cccccccc',
`####pppprrrraaaaggggmmmmaaaa iiiimmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn' by itself is equivalent to
`####pppprrrraaaaggggmmmmaaaa iiiimmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn """"aaaallllllllccccllllaaaassssssss....hhhh""""'. Use the string
argument if you want a single implementation file to
include code from multiple header files.
There is no way to split up the contents of a single
header file into multiple implementation files.
FFFFIIIILLLLEEEESSSS
file.c C source file
file.h C header (preprocessor) file
file.i preprocessed C source file
file.C C++ source file
file.cc C++ source file
file.cxx C++ source file
file.m Objective-C source file
file.s assembly language file
GNU Tools Last change: 1993/10/13 52
GCC(1) GNU Tools GCC(1)
file.o object file
a.out link edited output
_T_M_P_D_I_R/cc* temporary files
_L_I_B_D_I_R/cpp preprocessor
_L_I_B_D_I_R/cc1 compiler for C
_L_I_B_D_I_R/cc1plus compiler for C++
_L_I_B_D_I_R/collect linker front end needed on some machines
_L_I_B_D_I_R/libgcc.a GCC subroutine library
/lib/crt[01n].o start-up routine
_L_I_B_D_I_R/ccrt0 additional start-up routine for C++
/lib/libc.a standard C library, see
_i_n_t_r_o(3)
/usr/include standard directory for ####iiiinnnncccclllluuuuddddeeee files
_L_I_B_D_I_R/include standard gcc directory for ####iiiinnnncccclllluuuuddddeeee files
_L_I_B_D_I_R/g++-include additional g++ directory for ####iiiinnnncccclllluuuuddddeeee
_L_I_B_D_I_R is usually ////uuuussssrrrr////llllooooccccaaaallll////lllliiiibbbb////_m_a_c_h_i_n_e/_v_e_r_s_i_o_n.
_T_M_P_D_I_R comes from the environment variable TTTTMMMMPPPPDDDDIIIIRRRR (default
////uuuussssrrrr////ttttmmmmpppp if available, else ////ttttmmmmpppp).